C++关于"类与对象"的几道题

来源:百度知道 编辑:UC知道 时间:2024/05/10 22:00:33
4.1 实现一个三维坐标的Point类。包含一个构造函数,一个拷贝构造函数,一个将点变为相对于原点的对称点的negate函数,一个返回该点到原点(0,0,0)距离的函数norm和一个输出点坐标的函数print。

测试程序:
int main()
{ Point p(10,-5,4);
cout << "p = ";
p.print();
cout << ", p.norm() = " << p.norm() << endl;
p.negate();
cout << "p = ";
p.print();
cout << ", p.norm() = " << p.norm() << endl;
return 0;
}
程序运行结果为:
p = (10,-5,4), p.norm() = 11.8743
p = (-10,5,-4), p.norm() = 11.8743

4.2 实现一个时间类Time。将小时,分钟和秒存储为int型。包含一个构造函数,访问用的函数,一个推进当前时间的函数adv (),一个重新设置当前时间的函数reset()和输出结果函数print().
测试程序:
int main()
{ Time t(12,52,01);
t.print();
cout << endl;
t.adv();
t.print();
cout << endl;
t.adv(3,5,2);
t.print();
cout << endl;
return 0;
}
程序运行结果为:
12:52:1
12:52:2
15:57:4
4.3 实现一

上面的程序实在是问题多,给你写了个!
1.Point类
class Point
{
public:
Point(int a=0,int b=0,int c=0):x(a),y(b),z(c){}
Point(Point& p):x(p.x),y(p.y),z(p.z){}
void negate(){x=-x,y=-y,z=-z;}
double norm(){return sqrt(x*x+y*y+z*z);}
//2点距离公式 d=√[(x1-x2)^2+(y1-y2)^2+(z1-z2)^2]
void print(){cout<<"("<<x<<","<<y<<","<<z<<")";}
private:
double x,y,z;
};

2.Time类
class Time
{
public:
Time(int h=0,int m=0,int s=0):hour(h),minute(m),second(s){}
int Gethour(){return hour;}
int Getminute(){return minute;}
int Getsecond(){return second;}
void adv(int,int,int);//默认增加1秒
void reset(int h,int s,int m){hour=h,minute=m,second=s;}
void print()const{cout<<hour<<":"<<minute<<":"<<second<<endl;}
private:
int ho